﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Media;
using System.Timers;

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace Spelprojekt
{
    /// <summary>
    /// Här samlas alla spökena i en lista. Denna lista traverseras för att uppdatera spökena.
    /// </summary>
    class Ghosts
    {
        public int newGhostGeneratingPos = 0;
        public List<Ghost1> ghostList = new List<Ghost1>();

        public Ghosts()
        {
            Ghost1 temp = new Ghost1();
            ghostList.Add(temp);
        }
        /*! Rörelsefunktion för flera spöken. De tas bort ur listan ifall de försvinner ur bilden samt nya genereras efter newGhostGeneratingPos paserats av den sista .*/
        public void MoveAndAdd()
        {
            if (ghostList.Count() != 0)
            {
                if (ghostList.Last().GhostRectangle.X <= newGhostGeneratingPos)
                {
                    Ghost1 ghost1 = new Ghost1();
                    ghostList.Add(ghost1);
                }
            
                for (int i = 0; i < ghostList.Count(); i++)
                {
                    ghostList[i].Move();
                    if (ghostList[i].GhostRectangle.X < -142)
                    {
                        ghostList.RemoveAt(i);
                    }
                }
            }
        }
        /*! Funktion för att visualisera död vid GAME OVER för spökena.*/
        public void DropDead()
        {
            for (int i = 0; i < ghostList.Count(); i++)
            {
                ghostList[i].GhostRectangle.Y += ghostList[i].gameOverFalling;
                ghostList[i].gameOverFalling++;
            }
        }
    }
}
